import Vue from 'vue'
import VueI18n from 'vue-i18n'
// import Cookies from 'js-cookie'
// import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
// import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
// import enLocale from './en'
// import zhLocale from './zh'
const _ = require('lodash')

// const modulesFiles = require.context('./modules', true, /\.js$/)
const modulesFiles = require.context('./modules', true, /\.js$/)
var langModules = {
  en: {},
  zh: {}
}
// you do not need `import app from './modules/app'`
// it will auto require all vuex module from modules file
// eslint-disable-next-line no-unused-vars
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  // set './app.js' => 'app'
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  var chiildModuleName = _.split(moduleName, '/')
  const value = modulesFiles(modulePath)
  if (chiildModuleName[1] === 'en') {
    langModules['en'][chiildModuleName[0]] = value.default
  } else {
    langModules['zh'][chiildModuleName[0]] = value.default
  }
  return modules
}, {})
langModules

Vue.use(VueI18n)
const messages = {
  en: {
    // ...enLocale,
    // ...elementEnLocale,
    ...langModules.en
  },
  zh: {
    // ...zhLocale,
    // ...elementZhLocale,
    ...langModules.zh
  }
}
export function getLanguage() {
  // const chooseLanguage = Cookies.get('language')
  // if (chooseLanguage) return chooseLanguage
  // if has not choose language
  const language = (navigator.language || navigator.browserLanguage).toLowerCase()
  const locales = Object.keys(messages)
  for (const locale of locales) {
    if (language.indexOf(locale) > -1) {
      return locale
    }
  }
  return 'en'
}
// const i18n = new VueI18n({
//   // set locale
//   // options: en | zh | es
//   locale: getLanguage(),
//   // set locale messages
//   messages
// })

export default messages
